<?php

require_once("View/Login_View.php");
require_once("Model/Login_Handler_Model.php");
require_once("Model/Database/Database.php");
require_once("Model/Database/DBTables.php");
require_once("Model/User_Handler_Model.php");
require_once("Model/Topic_List_Model.php");
require_once("Model/Post_List_Model.php");
require_once("Model/Post_Model.php");
require_once("Model/Topic_Model.php");
require_once("Controller/Login_Controller.php");
require_once("Model/Database/DBConfig.php");
require_once("Helper/FormValidator.php");

$html = NULL;

//Skapar databasuppkoppling
$db = new \Model\Database();
$dbConfig = new \Model\DBConfig();
$db->Connect($dbConfig);

//Skapar de instanser som krävs de automatiska Modelltesterna
$lh = new \Model\LoginHandler($db);
$uh = new \Model\UserHandler($db, $lh);
$tl = new \Model\TopicList($db);
$pl = new \Model\PostList($db);
$fv = new FormValidator();

//Testar databasmodell
$html .= "<h2>Test av Databas</h2>";
if ($db->Connect($dbConfig) == FALSE)
{
	$html .= "Test av databas misslyckades";
}
else
{
	$html .= "Test av databas lyckades";	
}

//Testar LoginHandler
$html .= "<h2>Test av LoginHandler</h2>";

if ($lh->Test() == FALSE)
{
	$html .= "Test av inloggningsfunktion misslyckades";
}
else
{
	$html .= "Test av inloggningsfunktion lyckades";	
}

//Testar UserHandler
$html .= "<h2>Test av UserHandler</h2>";

if ($uh->Test() == FALSE)
{
	$html .= "Test av UserHandler misslyckades";
}
else
{
	$html .= "Test av UserHandler lyckades";	
}

//Testar TopicListModel
$html .= "<h2>Test av TopicList(Model)</h2>";

if ($tl->Test($tl) == FALSE)
{
	$html .= "Test av TopicList(Model) misslyckades";
}
else
{
	$html .= "Test av TopicList(Model) lyckades";	
}

//Testar PostListModel
$html .= "<h2>Test av PostList(Model)</h2>";

if ($pl->Test($pl, $tl) == FALSE)
{
	$html .= "Test av PostList(Model) misslyckades";
}
else
{
	$html .= "Test av PostList(Model) lyckades";	
}

 $db->Close();
 
 echo $html;

?>